package StringDemo;

public class StringDemo1 {
    public static void main(String[] args) {
        // 1,直接赋值
        String s1 = "abc";
        System.out.println(s1);

        // 2,使用new的方法
        // 空参构造：可以获取一个空白的字符串对像
        String s2 = new String();
        System.out.println("@" + s2 + "!");

        // 传递一个字符串，根据传递的字符串内容再创建一个新的字符串对象
        String s3 = new String("abc");
        System.out.println(s3);

        // 传递一个字符数组，根据字符数组的内容再创建一个新的字符串对象
        // 使用场景：由于字符串内容不会改变，所以可以改写成一个字符数组，后续便可以修改字符串内容
        // 如：abc---> { 'a', 'b', 'c'}---> { 'A', 'b', 'c'}--->Abc
        char[] chs = { 'a', 'b', 'c', 'd' };
        String s4 = new String(chs);
        System.out.println(s4);

        // 传递一个字节数组，根据字节数组内容再创建一个新的字符串对象
        // 应用场景：在网络中传递的数据均为字节信息，我们一般会把字节信息转换成字符串，便会用此构造方法
        byte[] bytes = { 97, 98, 99, 100 };
        String s5 = new String(bytes);
        System.out.println(s5);
    }
}